<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>使用原型解决构造函数的问题</title>
  </head>

  <body>

  </body>
  <script>
    // 解决的方法非常简单：
    // 1.只在构造函数中写属性
    function Person(name, age, gender) {
      this.name = name
      this.age = age
      this.gender = gender
    }
    // 2.在原型对象上面写方法
    Person.prototype.sayHi = function () {
      console.log(`大家好，我叫${this.name},今年${this.age}岁,是一个${this.gender}生`)
    }

    // Person.prototype.doHomework = function(){}

    let p1 = new Person('狗蛋', 16, '男')
    p1.sayHi()
    let p2 = new Person('翠花', 15, '女')
    p2.sayHi()

    // 证明 prototype 有没有解决 构造函数 内存浪费 的 问题
    console.log(p1.sayHi === p2.sayHi);
  </script>

</html>